home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1993 January / 64er_Magazin_93-01_1993_Markt__Technik_de.d64 / magische quadr. (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  831b  |  20 lines

  1. 0 input"[147]groesse";l:dima%(l,l):gosub5:s=l*(l*l+1)/2:input"ga";g:input"sa";t
  2. 1 input"name";n$:a=len(str$(l*l)):ifg=3thena=3:r$(1)="[144]":r$(.)=""
  3. 2 print"[147]":open1,g,t,n$:cmd1:l$="    ":fory=1tol:forx=1tol:printr$(x+yand1);
  4. 3 printright$(l$+str$(a%(x,y)),a);:next:print:next:print:print"summe:"s
  5. 4 print#1,"";:close1:end:data1,1,,,1,1,,,,,1,1,,,1,1
  6. 5 poke53280,12:poke53281,12:ifl/2>int(l/2)then14
  7. 6 forx=.to3:fory=.to3:reada(x,y):next:next:ifl/4>int(l/4)then9
  8. 7 forx=1tol:fory=1tol:a%(x,y)=x+y*l-l:ifa(xand3,yand3)thena%(x,y)=l*l+1-a%(x,y)
  9. 8 next:next:return
  10. 9 l=l/2:gosub5:forx=1tol:fory=1tol:a%(x+l,y+l)=a%(x,y)+l*l
  11. 10 a%(x+l,y)=a%(x,y)+2*l*l:a%(x,y+l)=a%(x,y)+3*l*l:next:next:fory=1tol
  12. 11 forx=1tol/2-.5:gosub13:next:ifl>3thenforx=1.5*l+2.5to2*l:gosub13:next
  13. 12 next:y=l/2+.5:x=1:gosub13:x=y:gosub13:l=l+l:return
  14. 13 h=a%(x,y):a%(x,y)=a%(x,y+l):a%(x,y+l)=h:return
  15. 14 x=l/2+.5:y=l/2-.5:w=1
  16. 15 a%(x,y)=w:x=x+1:y=y-1:ifx=l+1andy=.thenx=l:y=l-1
  17. 16 x=x+l*(x>l):y=y-l*(y<1):ifa%(x,y)theny=y-1-l*(y<2):x=x-1
  18. 17 w=w+1:ifw>l*lthenreturn
  19. 18 goto15
  20.